//
//  PPNetError.h
//  PPNetworking
//
//  Created by 邓标祥 on 2020/12/15.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

typedef NS_ENUM(NSInteger, PPNetErrorCode) {
    PPNetError_emptyData   = 1011,     //!< 没有相关数据
    PPNetError_formatError,            //!< 服务器数据格式不对
    PPNetError_converError,            //!< 转换数据错误
    PPNetError_unknown     = 98989,    //!< 未知
    
    /// -- 下面是java接口返回的
    PPNetError_no_login     = 20400,    //!< 用户未登录，请登录
    PPNetError_loginCheckoutFailure = 20502, //!< 登录检验失败
    PPNetError_tokenInvalid = 401,      //!< token无效
};

@interface PPNetError : NSObject
@property (nonatomic, assign) NSInteger code;
@property (nonatomic, copy) NSString *message;
@property (nonatomic, strong) NSError *systemError;

/// 根据枚举创建对应的业务层error对象
/// @param code code
+ (instancetype)errorWithCode:(PPNetErrorCode)code;


/// 创建自定义业务层error对象
/// @param code code
/// @param message message
+ (instancetype)errorWithCode:(NSInteger)code message:(NSString *)message;


/// 根据系统error自定义
/// @param systemError systemError
+ (instancetype)errorWithSystemError:(NSError *)systemError;
@end

NS_ASSUME_NONNULL_END
